// async await -- es7（6+） 提供
// 2015年 ECMAScript 6正式版本，即ECMAScript 2015-》ECMAScript 2016 现代js react-babel等实现 ES6代码转译为ES5代码
// 异步同步化方案：
// 回调函数 --地狱--》promise es6-- - then有不完美的地方-- -》 async await es7

// 回调 地狱
function f1(cb) {
    console.log('f1---------')
    setTimeout(function () {
        cb();
    }, 1000)
}

function f2(cb) {
    console.log('f2---------')
    setTimeout(function () {
        cb();
    }, 2000)
}

function f3(cb) {
    console.log('f3---------')
    setTimeout(function () {
        cb();
    }, 4000)
}

function f4() {
    console.log('f4---------')
}

// 回调地狱 异步任务队列长 保持顺序
// 可读性不好
f1(function () {
    f2(function () {
        f3(f4)
    })
});
